@import url("https://fonts.googleapis.com/css?family=Open+Sans:700"); * { box-sizing: border-box; margin: 0; padding: 0; } body { background: #5b37b7; color: #010101; min-height: 100vh; display: grid; place-items: center; font-family: "Open Sans", sans-serif; transition: background 0.2s ease-out; } nav { display: flex; background: #fff; padding: 2rem 3.15rem; border-radius: 0 0 30px 30px; box-shadow: 0 1px 15px rgba(0, 0, 0, 0.1); } a { color: inherit; text-decoration: none; margin: 0 0.2rem; display: flex; align-items: center; padding: 0.75rem 1.25rem; border-radius: 30px; position: relative; --hover-bg: #5b37b720; --hover-c: #5b37b7; } a svg { margin-right: -2.5rem; width: 28px; height: 28px; pointer-events: none; transition: margin 0.2s ease-out; } a span { opacity: 0; visibility: hidden; font-size: 0.9rem; margin-left: 0.9rem; } a:before { position: absolute; content: ""; top: 50%; left: 0; width: 70px; height: 70px; border-radius: 50%; transform: translate(0%, -50%) scale(0); visibility: visible; opacity: 1; } a.active { background: var(--hover-bg); color: var(--hover-c); } a.active:before { background: var(--hover-c); opacity: 0; visibility: hidden; transform: translate(0%, -50%) scale(2); transition: all 0.4s ease-out; } a.active svg { margin-right: 0; } a.active span { visibility: visible; opacity: 1; transition: all 0.2s ease-out; } @media (max-width: 500px) { nav { flex-direction: column; justify-self: start; border-radius: 0 30px 30px 0; padding: 2rem 1.15rem 2rem 0.75rem; } nav a { margin: 0.5rem 0; } nav svg { margin: 0; } }